/**
 * English language pack
 */
export default {
  common: {
    confirm: 'Confirm',
    cancel: 'Cancel',
    save: 'Save',
    delete: 'Delete',
    edit: 'Edit',
    add: 'Add',
    search: 'Search',
    reset: 'Reset',
    submit: 'Submit',
    back: 'Back',
    close: 'Close',
    refresh: 'Refresh',
    loading: 'Loading...',
    success: 'Operation successful',
    error: 'Operation failed',
    warning: 'Warning',
    info: 'Info',
    yes: 'Yes',
    no: 'No',
    enable: 'Enable',
    disable: 'Disable',
    online: 'Online',
    offline: 'Offline',
    normal: 'Normal',
    total: 'Total',
    items: 'items',
    all: 'All',
    export: 'Export Data',
    import: 'Import Data',
    download: 'Download',
    upload: 'Upload',
    view: 'View',
    copy: 'Copy',
    clear: 'Clear',
    filter: 'Filter',
    sort: 'Sort',
    pleaseSelect: 'Please select',
    confirmSave: 'Confirm save?',
    setAsDefault: 'Set as Default',
    user: 'User',
    personalCenter: 'Account',
    personalSettings: 'Settings',
    logout: 'Logout',
    // Common fields
    avatar: 'Avatar',
    name: 'Name',
    description: 'Description',
    status: 'Status',
    createTime: 'Create Time',
    updateTime: 'Update Time',
    isDefault: 'Default',
    default: 'Default',
    platform: 'Platform',
    // Common operations
    clickToUpload: 'Click to upload',
    changeAvatar: 'Change Avatar',
    uploadAvatar: 'Upload Avatar',
    removeAvatar: 'Remove Avatar',
    avatarTip: 'Support JPG, PNG, GIF format, max 2MB',
    avatarUploadFailed: 'Avatar upload failed: ',
    avatarUploadSuccess: 'Avatar uploaded successfully',
    clickToChangeAvatar: 'Click to change avatar',
    avatarFormatTip: 'Supports JPG, PNG format, size not exceeding 2MB',
    // File upload validation
    onlyImageFiles: 'Only image files allowed!',
    imageSizeLimit: 'Image size cannot exceed 2MB!',
    // Common prompts
    confirmSetDefault: 'Are you sure to set this {type} as default?',
    setDefaultTip: 'After setting as default, the system will prioritize this {type}, and the original default {type} will be unset.',
    setDefaultSuccess: 'Set "{name}" as default {type}',
    setDefaultFailed: 'Failed to set default {type}',
    operationFailed: 'Operation failed',
    // Common placeholders
    enterUsername: 'Please enter username',
    enterEmail: 'Please enter email',
    enterPhone: 'Please enter phone number',
    enterPassword: 'Please enter password',
    enterConfirmPassword: 'Please enter password again',
    enterVerificationCode: 'Please enter verification code',
    // Platform config common
    platformConfig: 'Platform Configuration',
    getPlatformConfigFailed: 'Failed to get platform configuration',
    updatePlatformConfigSuccess: 'Platform configuration updated successfully',
    addPlatformConfigSuccess: 'Platform configuration added successfully',
    updatePlatformConfigFailed: 'Failed to update platform configuration',
    addPlatformConfigFailed: 'Failed to add platform configuration',
  },

  menu: {
    dashboard: 'Dashboard',
    user: 'User Management',
    device: 'Device Management',
    message: 'Message Management',
    role: 'Role Configuration',
    template: 'Template Management',
    config: 'Configuration',
    modelConfig: 'Model Config',
    agent: 'Agent Management',
    sttConfig: 'STT Config',
    ttsConfig: 'TTS Config',
    setting: 'Settings',
    account: 'Account',
    personalConfig: 'Settings',
  },

  auth: {
    login: 'Login',
    register: 'Register',
    logout: 'Logout',
    forgetPassword: 'Forgot Password',
    verificationCode: 'Verification Code',
    rememberMe: 'Remember Me',
    loginSuccess: 'Login successful',
    loginFailed: 'Login failed',
    logoutSuccess: 'Logout successful',
    registerSuccess: 'Registration successful',
    passwordReset: 'Password reset successful',
    loginAgreement: 'By logging in, you agree to',
    otherLoginMethods: 'Other login methods',
    noAccount: 'No account?',
    // Register related
    name: 'Name',
    enterName: 'Please enter name',
    enterPhoneOptional: 'Please enter phone number (optional)',
    emailVerificationCode: 'Email Verification Code',
    agreeTerms: 'I have read and agree to',
    agreeTermsRequired: 'Please agree to user agreement',
    haveAccount: 'Already have an account?',
    loginNow: 'Login now',
    // Forgot password related
    newPassword: 'New Password',
    enterNewPassword: 'Please enter new password',
    confirmNewPassword: 'Confirm New Password',
    enterConfirmNewPassword: 'Please enter new password again',
    verifyEmail: 'Verify Email',
    resetPassword: 'Reset Password',
    rememberPassword: 'Recall your password?',
    backToLogin: 'Back to Login',
    // Verification code related
    sending: 'Sending...',
    resendAfter: 'Resend in {seconds}s',
    sendVerificationCode: 'Send Verification Code',
    enterEmailFirst: 'Please enter email address first!',
    enterValidEmail: 'Please enter a valid email format!',
    verificationCodeSent: 'Verification code has been sent to your email!',
    sendVerificationCodeFailed: 'Failed to send verification code!',
    sendVerificationCodeRetry: 'Failed to send verification code, please try again later',
    verificationSuccess: 'Verification successful!',
    verificationCodeError: 'Verification code error',
  },

  user: {
    username: 'Username',
    email: 'Email',
    phone: 'Phone',
    role: 'Role',
    admin: 'Admin',
    normalUser: 'Normal User',
    lastLoginTime: 'Last Login Time',
    lastLoginIp: 'Last Login IP',
    deviceCount: 'Device Count',
    onlineDeviceCount: 'Online Devices',
    messageCount: 'Message Count',
    accountType: 'Account Type',
    normal: 'Normal',
    disabled: 'Disabled',
  },


  device: {
    deviceId: 'Device ID',
    deviceName: 'Device Name',
    deviceType: 'Device Type',
    onlineStatus: 'Online',
    offlineStatus: 'Offline',
    lastOnlineTime: 'Last Online Time',
    owner: 'Owner',
    wifiName: 'WIFI Name',
    location: 'Location',
    productType: 'Product Type',
    addDevice: 'Add Device',
    enterDeviceCode: 'Enter device code',
    confirmDelete: 'Are you sure to delete this device?',
    configureDefaultRole: 'Please configure default role first',
    version: 'Version',
    activeTime: 'Active Time',
    // Role related
    roleName: 'Role Name',
    roleDesc: 'Role Description',
    voiceName: 'Voice',
    modelName: 'Conversation Model',
    sttName: 'Speech Recognition',
    totalDevice: 'Device Count',
    createRole: 'Create Role',
    updateRole: 'Update Role',
    roleList: 'Role List',
    enterRoleName: 'Enter role name',
    setAsDefaultRole: 'Set as Default Role',
    defaultRoleTip: 'When set as default, this role will be used preferentially',
    conversationModelSettings: 'Conversation Model Settings',
    modelType: 'Model Type',
    llmModel: 'LLM Model',
    agent: 'Agent',
    model: 'Model',
    selectModel: 'Please select model',
    conversationModelAdvanced: 'Conversation Model Advanced Settings',
    temperature: 'Temperature',
    temperatureTip: 'Control answer creativity:\n- Low value (0.2): More precise and conservative\n- High value (0.8): More creative and diverse',
    topP: 'Top P',
    topPTip: 'Control vocabulary selection range:\n- Low value (0.5): More focused\n- High value (0.9): Consider more possibilities',
    speechRecognitionSettings: 'Speech Recognition Settings',
    speechRecognition: 'Speech Recognition',
    selectSpeechRecognition: 'Please select speech recognition configuration',
    speechRecognitionAdvanced: 'Speech Recognition Advanced Settings (VAD Parameters)',
    speechThreshold: 'Speech Threshold',
    silenceThreshold: 'Silence Threshold',
    energyThreshold: 'Energy Threshold',
    silenceDuration: 'Silence Duration',
    voiceSynthesisSettings: 'Voice Synthesis Settings',
    selectVoice: 'Please select voice',
    rolePrompt: 'Role Prompt',
    agentPrompt: 'Agent mode uses built-in prompts, no additional setup required',
    agentPromptDesc: 'Agent includes preset prompts and knowledge base, will automatically use agent description as role prompt',
    useTemplate: 'Use Template',
    custom: 'Custom',
    selectTemplate: 'Select Template',
    templateManagement: 'Template Management',
    enterRolePrompt: 'Enter role prompt, describe character traits, knowledge background and behavior patterns',
    cancel: 'Cancel',
    confirmDeleteRole: 'Are you sure to delete this role?',
    deleteRole: 'Delete Role',
    settingDefaultRole: 'Setting default role...',
    setAsDefaultSuccess: 'Set as default role',
    setAsDefaultFailed: 'Setting failed',
    deleteRoleSuccess: 'Delete successful',
    deleteRoleFailed: 'Delete failed',
    createRoleSuccess: 'Create successful',
    updateRoleSuccess: 'Update successful',
    checkForm: 'Please check if the form is filled correctly',
    voiceNotFound: 'Voice information not found',
    audioUrlInvalid: 'Audio URL invalid',
    audioPlayFailed: 'Audio playback failed',
    getTestAudioFailed: 'Failed to get test audio',
    playVoiceFailed: 'Voice playback failed',
    loadTemplateFailed: 'Failed to load template list',
    voskLocalRecognition: 'Vosk Local Recognition',
    unknown: 'Unknown',
    unknownModel: 'Unknown Model',
    voiceTestMessage: 'Hello, I am your voice assistant, I am very happy to serve you',
  },

  template: {
    templateName: 'Template Name',
    templateList: 'Prompt Template List',
    createTemplate: 'Create Template',
    editTemplate: 'Edit Prompt Template',
    templatePreview: 'Template Preview',
    category: 'Category',
    templateCategory: 'Template Category',
    customCategory: 'Custom Category',
    templateDesc: 'Template Description',
    templateContent: 'Template Content',
    isDefault: 'Is Default',
    default: 'Default',
    defaultTemplate: 'Default Template',
    createTime: 'Create Time',
    confirmDelete: 'Are you sure to delete this template?',
    enterTemplateName: 'Please enter template name',
    selectCategory: 'Please select template category',
    enterCustomCategory: 'Please enter custom category name',
    enterTemplateDesc: 'Please enter template description',
    enterTemplateContent: 'Please enter template content',
    templateContentPlaceholder: 'Please enter template content, describing the character\'s characteristics, knowledge background and behavior',
    defaultTip: 'When set as default, this template will be displayed first',
    categoryBasic: 'Basic Role',
    categoryProfessional: 'Professional Role',
    categorySocial: 'Social Role',
    categoryEntertainment: 'Entertainment Role',
    createSuccess: 'Template created successfully',
    updateSuccess: 'Template updated successfully',
    deleteSuccess: 'Template deleted',
    deleteFailed: 'Delete failed',
    setDefaultSuccess: 'Set as default template',
    operationFailed: 'Operation failed',
  },

  config: {
    llm: 'Model',
    stt: 'Speech Recognition',
    tts: 'Text to Speech',
    category: 'Category',
    modelType: 'Model Type',
    list: 'List',
    create: 'Create',
    confirmDelete: 'Are you sure to delete this {type} configuration?',
    pleaseEnter: 'Please enter',
    selectCategory: 'Please select {type} category',
    selectModelType: 'Please select model type',
    enterName: 'Please enter {type} name',
    enterDescription: 'Please enter {type} description',
    enterField: 'Please enter {field}',
    selectCategoryFirst: 'Please select {type} category first',
    update: 'Update {type}',
    parameterConfig: 'Parameter Configuration',
    defaultTip: 'When set as default, this configuration will be used first',
    chatModel: 'Chat Model',
    visionModel: 'Vision Model',
    intentModel: 'Intent Model',
    embeddingModel: 'Embedding Model',
    defaultChat: 'Default Chat',
    defaultVision: 'Default Vision',
    defaultIntent: 'Default Intent',
    defaultEmbedding: 'Default Embedding',
    defaultStt: 'Default Speech Recognition',
    createSuccess: 'Created successfully',
    updateSuccess: 'Updated successfully',
    fillRequiredFields: 'Please fill in required fields',
    modelNameNoChinese: 'Model name cannot contain Chinese characters, please enter a valid model name',
    modelNameInvalid: 'Model name "{name}" is not in the valid list',
  },

  message: {
    content: 'Content',
    type: 'Type',
    sender: 'Sender',
    receiver: 'Receiver',
    user: 'User',
    assistant: 'Assistant',
    system: 'System',
    // Message page specific
    messageSender: 'Message Sender',
    messageContent: 'Message Content',
    voice: 'Voice',
    conversationTime: 'Conversation Time',
    conversationDate: 'Conversation Date',
    queryTable: 'Query Table',
    noAudio: 'No Audio',
    confirmDeleteMessage: 'Are you sure to delete this message?',
    today: 'Today',
    thisMonth: 'This Month',
    prompt: {
      exportSuccess: 'Export successful',
      exportFailed: 'Export failed',
      deleteSuccess: 'Delete successful',
      deleteFailed: 'Delete failed',
      saveSuccess: 'Save successful',
      saveFailed: 'Save failed',
      updateSuccess: 'Update successful',
      updateFailed: 'Update failed',
      addSuccess: 'Add successful',
      addFailed: 'Add failed',
      loading: 'Loading...',
      exporting: 'Exporting data...',
      deleting: 'Deleting...',
      saving: 'Saving...',
      updating: 'Updating...',
      adding: 'Adding...',
      serverMaintenance: 'Server maintenance/restarting, please try again later',
    },
  },

    agent: {
      agentName: 'Agent Name',
      agentDesc: 'Agent Description',
      publishTime: 'Publish Time',
      botId: 'Bot ID',
      coze: 'Coze',
      dify: 'Dify',
      appId: 'App ID',
      spaceId: 'Space ID',
      publicKey: 'Public Key',
      privateKey: 'Private Key',
      apiUrl: 'API URL',
      apiKey: 'API Key',
      enterAppId: 'Please enter Coze App ID',
      enterSpaceId: 'Please enter Coze Space ID',
      enterPublicKey: 'Please enter public key',
      enterPrivateKey: 'Please enter private key',
      enterApiUrl: 'Please enter API URL',
      enterApiKey: 'Please enter API Key',
      enterAgentName: 'Please enter agent name',
    },

    account: {
      phone: 'Phone',
      email: 'Email',
      password: 'Password',
      confirmPassword: 'Confirm Password',
      enterName: 'Please enter name',
      enterPhone: 'Please enter phone number',
      enterEmail: 'Please enter email address',
      passwordPlaceholder: 'Leave blank to keep current password',
      confirmPasswordPlaceholder: 'Please enter password again',
      passwordStrength: 'Strength',
      passwordLevel: {
        low: 'Low',
        medium: 'Medium',
        strong: 'Strong',
      },
      passwordTip: 'Please enter at least 6 characters. Do not use easily guessed passwords.',
      updateSuccess: 'Personal information updated successfully',
      updateFailed: 'Update failed',
      validation: {
        passwordStrength: 'Password strength is insufficient',
        passwordMismatch: 'Passwords do not match',
      },
    },

  validation: {
    required: 'This field is required',
    email: 'Please enter a valid email address',
    phone: 'Please enter a valid phone number',
    password: 'Password must be at least 8 characters with letters and numbers',
    confirmPassword: 'Passwords do not match',
    username: 'Username must be 4-20 characters, letters, numbers, and underscores only',
    minLength: 'Minimum {min} characters',
    maxLength: 'Maximum {max} characters',
    // Common validation messages
    enterEmail: 'Please enter email',
    enterValidEmail: 'Please enter a valid email format',
    enterUsername: 'Please enter username',
    usernameLength: 'Username length should be {min}-{max} characters',
    enterPassword: 'Please enter password',
    passwordLength: 'Password length should be {min}-{max} characters',
    enterConfirmPassword: 'Please confirm password',
    enterVerificationCode: 'Please enter verification code',
    verificationCodeLength: 'Verification code should be {length} digits',
    enterValidPhone: 'Please enter a valid phone number',
    enterName: 'Please enter name',
    nameLength: 'Name length should be {min}-{max} characters',
    enterWebSocketUrl: 'Please enter WebSocket address',
    enterValidWebSocketUrl: 'Please enter a valid address (starting with ws:// or wss://)',
    enterDeviceId: 'Please enter device ID',
  },

  dashboard: {
    dailySentence: 'Daily Sentence',
    clickToTranslate: 'Click to translate',
    getSentenceFailed: 'Failed to get daily sentence, using default value',
    conversationCount: 'Conversation Count',
    activeDevices: 'Active Devices',
    totalDevices: 'Total Devices',
    todayStats: 'Today\'s Statistics',
    userStats: 'User Statistics',
    deviceStats: 'Device Statistics',
    messageStats: 'Message Statistics',
    systemStatus: 'System Status',
    online: 'Online',
    offline: 'Offline',
    normal: 'Normal',
    abnormal: 'Abnormal',
    loading: 'Loading',
    noData: 'No Data',
    getFailed: 'Failed to get',

    
    greeting: {
      morning: 'Good Morning',
      forenoon: 'Good Morning',
      noon: 'Good Noon',
      afternoon: 'Good Afternoon',
      evening: 'Good Evening',
      night: 'Good Night',
    },
    welcome: {
      rest: 'Take a break',
      eat: 'What to eat?',
      game: 'Want to play a game?',
      tired: 'I guess you might be tired',
    },
  },

  error: {
    networkError: 'Network error, please check your connection',
    serverError: 'Server error',
    unauthorized: 'Unauthorized, please login again',
    forbidden: 'Access forbidden',
    notFound: 'Resource not found',
    timeout: 'Request timeout',
    unknown: 'Unknown error',
  },

  table: {
    index: 'Index',
    action: 'Action',
    total: 'Total {total} items',
    noData: 'No data',
  },

  page: {
    title: {
      dashboard: 'Dashboard',
      user: 'User Management',
      device: 'Device Management',
      message: 'Message Management',
      role: 'Role Configuration',
      template: 'Template Management',
      modelConfig: 'Model Configuration',
      agent: 'Agent Management',
      sttConfig: 'STT Configuration',
      ttsConfig: 'TTS Configuration',
      account: 'Account',
      personalConfig: 'Settings',
      login: 'Login',
      register: 'Register',
      forget: 'Forgot Password',
      error403: '403 - Forbidden',
      error404: '404 - Not Found',
    },
  },

  router: {
    title: {
      login: 'Login',
      register: 'Register',
      forget: 'Forgot Password',
      dashboard: 'Dashboard',
      user: 'User Management',
      device: 'Device Management',
      message: 'Message Management',
      role: 'Role Configuration',
      template: 'Template Management',
      modelConfig: 'Model Configuration',
      agent: 'Agent Management',
      sttConfig: 'STT Configuration',
      ttsConfig: 'TTS Configuration',
      account: 'Account',
      personalConfig: 'Settings',
      error403: '403 - Forbidden',
      error404: '404 - Not Found',
    },
    parent: {
      roleManagement: 'Role Management',
      configManagement: 'Configuration',
      settings: 'Settings',
    },
  },

  component: {
    settings: {
      title: 'System Settings',
      theme: {
        title: 'Theme Mode',
        light: 'Light',
        dark: 'Dark',
        auto: 'Auto',
        current: 'Current',
        actual: 'Actual',
      },
      language: {
        title: 'Language Settings',
        current: 'Current Language',
      },
      quickActions: {
        title: 'Quick Actions',
        clearCache: 'Clear Cache',
        resetSettings: 'Reset Settings',
        exportSettings: 'Export Settings',
        importSettings: 'Import Settings',
      },
    },
    globalLoading: {
      loading: 'Loading...',
    },
    errorBoundary: {
      title: 'Page Error',
      description: 'Sorry, the page encountered some issues.',
      retry: 'Retry',
      goHome: 'Go Home',
    },
    pageSkeleton: {
      loading: 'Page Loading...',
    },
    audioPlayer: {
      play: 'Play',
      pause: 'Pause',
      stop: 'Stop',
      volume: 'Volume',
      speed: 'Playback Speed',
      currentTime: 'Current Time',
      duration: 'Duration',
    },
    floatingChat: {
      title: 'AI Assistant',
      placeholder: 'Please enter your question...',
      send: 'Send',
      clear: 'Clear',
      minimize: 'Minimize',
      maximize: 'Maximize',
    },
    deviceEditDialog: {
      title: 'Edit Device',
      addTitle: 'Add Device',
      deviceName: 'Device Name',
      deviceType: 'Device Type',
      owner: 'Device Owner',
      online: 'Online',
      offline: 'Offline',
    },

  },
}

